查看原文
其他

哇,终端神器,爆赞!

点击关注 👉 Java面试那些事儿 2021-09-09

大家好,我是D哥

点击关注下方公众号,Java面试资料 都在这里

来源:switowski.com/blog/favorite-cli-tools


程序员在从事开发时,终端CLI工具的使用必不可少,往往都是发展工具,所以今天在此给大家推荐一下比较好用的终端工具。先给大家列个推荐清单,如下图。



高频CLI工具推荐


# 鱼壳


过去,我曾经使用过Bash和Z Shell,而现在,这个鱼Shell,也是一个非常优秀的终端Shell工具,拥有很多开箱即用的功能,例如语法自动推荐补全,语法高亮显示或使用快捷键在最近访问的文件夹之间来回切换


下载地址:https://fishshell.com/


# 星际飞船


如果必须要从本章文章中选择一个我最喜欢的终端工具-那非Starship莫属。


Starship可以适用于任何Shell。您只需要安装它,然后在相应的配置文件.bashrc / .zshrc / config .fish添加一行配置,剩下的工作交给它来完成就好了。



它可以做到:

  • 根据您是否在代码仓库中添加了新文件,是否修改了文件,是否临时存了文件等情况,用相应的符号表示git仓库的状态。
  • 根据你所在的Python项目目录,展示Python的版本号,这也适用于Go / Node / Rust / Elm等其他编程语言环境。
  • 展示上一个命令执行所用的时间,指令运行时间必须在毫米等级。
  • 如果上一个命令执行失败,会展示相应的错误错误。



但是,它能以更友好友好的形式智能地给你呈现!这样,如果你不在git存储库中,可以隐藏git信息。如果您不在Python项目中,则不会有Python版本信息,因为显示它没有什么意义。它永远不会给你展示多余的信息,始终保持终端的美观,优雅和简约。

下载地址:https://starship.rs/


# z


它会记住你访问的历史文件夹,经过短暂的学习后,你就可以使用z path_of_the_folder_name命令在目录之间替换了。



例如,如果我经常访问〜/ work / src / projects,我只需要运行z pro,就可以立马替换到那里。z的原理参考了frecency算法-一个基于统计频率和recency进行分析的算法。如果它提高了我在常用的不同文件路径之间转换切换的效率,帮我节省了键盘击键次数以及大量的路径记忆。它存储了你不想使用的路径文件夹,你随时可以手动将其删除。

下载地址:https://github.com/rupa/z


# fzf


fzf — Fuzzy finder,即模糊查找器。它是一种通用工具,可让您使用模糊搜索来查找文件,历史命令,进程,git提交等。您键入一些字母,它会尝试匹配结果列表中任何位置的字母。输入的字母越多,结果也就越准确。


下载地址:https://github.com/junegunn/fzf


# fd



上面动图是find命令(左)和fd命令(右)的使用对比。


这类系统自带的find命令,但使用起来更简单,查找速度改变,并具有良好的替代设置。


例如您想找一个称为“发票”的文件,但不确定文件的扩展名,还是查找一个放置所有发票的目录,而不单是一个文件。您可以撸起袖子,开始为find命令编写那些复杂的正则表达式,也可以直接命令行运行fd发票。


默认情况下,fd会忽略隐藏的以及在.gitignore列出的文件和目录。大多数时候,这也是我们想要的,但是在极少数特殊情况下,如果需要更多此功能时,我会给该命令设置一个别名:fda ='fd -IH'。


你会发现,fd命令输出的颜色配置很漂亮,而且根据基准测试(上述GIF),它的执行速度甚至超过find命令的还要快。

下载地址:https://github.com/sharkdp/fd


# ripgrep



上图为grep(左)与rg(右)命令执行时的对比。


与上述fd指令类似,ripgrep是grep命令的替代方法,不过ripgrep的执行速度转换,并且具有完善的配置和丰富的彩色输出。

下载地址:https://github.com/BurntSushi/ripgrep


# htop和一目了然


在Linux或Mac上显示进程运行状态信息最常用的工具是我们熟悉的top,它是每位系统管理员的好帮手。



htop工具是top工具的绝佳替代品。


top工具是非常基础的监控工具,提供的功能有限,因此很多人转去使用htop。htop比起top,优势很明显-除了功能进一步完善之外,它的色彩搭配也很丰富,整体上使用起来更加友好。



可以一览无余,还可以让你一目了然地快速了解系统当前状态。


glances是htop的补充工具。除了列出的所有进程及其CPU和内存使用情况之外,它还可以显示有关系统的其他信息,如下:


  • 网络及磁盘使用情况
  • 文件系统已使用的空间和总空间
  • 来自不同传感器(例如电池)的数据
  • 以及最近消耗过多资源的进展列表

htop下载地址:https://hisham.hm/htop/ glances下载地址:https://nicolargo.github.io/glances/


# virtualenv和virtualfish


Virtualenv是用于在Python中创建虚拟环境的工具。



VirtualFish则是Fish Shell的虚拟环境管理器。它提供了许多命令来执行快速创建,列出或删除虚拟环境等操作。

virtualenv下载地址:https://pypi.org/project/virtualenv/ virtualfish下载地址:https://github.com/justinmayer/virtualfish


# pyenv,nodenv和rbenv


pyenv可以轻松实现Python版本的切换。



Pyenv,nodenv和rubyenv是用于管理计算机上不同版本的Python,Node和Ruby的工具。


假设,您正在计算机上安装两个版本的Python。或者,您正在使用两个不同的Python项目,或者因为特殊情况仍然需要使用Python2。不同的Python版本在电脑上管理很复杂。您需要确保不同的项目具有正确版本的软件依赖包。如果不小心,很容易弄乱这种脆弱的配置。


该工具为版本管理提供了很多帮助,从而使这一糟糕的梦变得易于管理。它可以分为或“按文件夹”切换Python版本,而且每个版本都是相互隔离的。

pyenv下载地址:https://github.com/pyenv/pyenv nodenv下载地址:https://github.com/nodenv/nodenv rbenv下载地址:https://github.com/rbenv/rbenv


# 像素


Virtualenv解决了Python程序包管理中的许多问题,但是还有一个方案可以解决。如果我想在分区环境下安装Python替代(它是一个独立的工具,而前面提到的glance工具),那么我会遇到一系列安装带来的问题。在虚拟环境之外安装重叠不是一个好主意,将来可能会导致意想不到不到的问题。替换,如果我决定使用虚拟环境,那么每次我要运行程序时都需要激活该虚拟环境。这也不是最方便的解决方案。


事实证明,pipx工具可以解决上面提到的问题。以及Python软件依赖包安装到单独的环境中(因此不会存在依赖项冲突的问题)。同时,这些工具提供的CLI命令在周围环境内也可用。因此,我无需激活任何环境——pipx会帮我完成这个操作!

pipx下载地址:https://github.com/pipxproject/pipx


# ctop和lazydocker



ctop 的实时监控示例


当你使用 Docker 并对其监控时,这两个工具会很有帮助。ctop是 Docker 容器的顶级接口。它可以为你:


  • 展示正在运行和已停止的容器列表。
  • 展示统计信息,例如内存、CPU 使用率以及针对每个容器的其他详细信息窗口(例如绑定的端口等其他信息)。
  • 提供快捷菜单,方便快速停止、杀掉指定容器进程或显示给定容器的日志。


这比你尝试从docker ps命令中找出所有这些信息要方便多了。



lazydocker也是一个非常好用的 Docker 工具


lazydocker它是一个非常成熟的拥有终端 UI 界面的工具,提供了非常丰富的功能用于管理 Docker。

ctop 下载地址:https://github.com/bcicen/ctoplazydocker 下载地址:https://github.com/jesseduffield/lazydocker


# Homebrew



如果使用的是 Mac,那就无需再多介绍 Homebrew 了。它是 macOS 上被业界普遍认可的软件包管理器。

下载地址:https://brew.sh/


# asciinema



asciinema是可用于记录终端会话的工具。但是,与录制 GIF 不同,它可以让用户选择并复制这些录制中的代码!这对于录制编码教程来说十分好用。asciinema录制的内容,支持直接复制,十分给力。

下载地址:https://asciinema.org/


# colordiff 和 diff-so-fancy



如果想在终端中使用diff操作(比较两个文件之间的差异),可以放弃使用diff命令,而是使用 colordiff。colordiff输出可以高亮显示,因此在查看文件差异内容时要方便得多,而不是在diff命令输出内容下,费力地查看所有的“ <”和“>”符号来对比文件差异。


如果你觉得还不够,那么推荐 diff-so-fancy。它是比colordiff更友好的一个差异对比工具。



它通过以下方式进一步改善了文件内容差异展示的外观:


  • 突出显示每一行中差异的单词,而不是整行
  • 简化变更文件的标题
  • 去除 + 和 - 符号(颜色差异展示就够了)
  • 清楚地指出新行和删除的空行

colordiff 下载地址:https://www.colordiff.org/diff-so-fancy 下载地址:https://github.com/so-fancy/diff-so-fancy


# tree


可以通过brew install tree安装该工具。如果要查看给定目录的内容,那么 tree 是执行此操作的必备工具。它能以漂亮的树状结构显示所有子目录及文件:

$ tree ..├── recovery.md├── README.md├── archive├── automator│ ├── Open\ Iterm2.workflow│ │ └── Contents│ │ ├── Info.plist│ │ ├── QuickLook│ │ │ └── Thumbnail.png│ │ └── document.wflow│ └── Start\ Screen\ Saver.workflow├── brew-cask.sh

# bat



类似于在终端中常用的用于显示文件内容的cat命令,但是bat效果更佳。


它增加了语法高亮显示,git gutter 标记(如果适用),自动分页(如果文件很大)等功能,并且使得输出的内容阅读起来更加友好。

bat 下载地址:https://github.com/sharkdp/bat


# httpie



如果你需要发送一些 HTTP 请求,但发现使用curl不够直观,那么可以尝试一下httpie。这是一款非常好用的curl替代工具。合理的默认配置以及简洁的语法使它更易于使用,命令返回也是彩色输出。

httpie 下载地址:https://httpie.org/


# tldr


简化版的命令帮助手册。



“man pages”展示的信息太全面了,但是很多时候使用tldr可以更快地帮你找到特定信息,这才是用户真正想要的。

tldr 下载地址:https://tldr.sh/


# exa



exa是ls命令的一个可替代方案。


它色彩艳丽,还可以显示 git 状态等其他信息,自动将文件大小转换为方便人们阅读的单位,并且所有这些都保持与ls几乎相同的执行速度。

exa 下载地址:https://the.exa.website/


# litecli 和 pgcli



这是SQLite 和 PostgreSQL CLI 的解决方案。借助自动提示和语法突出显示,它们比默认的sqlite3和psql工具要好用很多。

litecli 下载地址:https://litecli.com/pgcli 下载地址:https://www.pgcli.com/


# mas


mas是一个用于从 App Store 安装软件的 CLI 工具。

mas 下载地址:https://github.com/mas-cli/mas


# ncdu



这是在终端进行磁盘分析时使用的工具,它使用起来简单快捷。当需要释放一些硬盘空间时,可以使用这款工具。

ncdu 下载地址:https://dev.yorhel.nl/ncdu


# 总结


以上推荐工具清单很长,小伙伴们有什么好用的也可以安利出来,一起交流进步。



热门推荐:


简历&面试题&视频资料获取 


扫描下方二维码,回复关键字【 java


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存